Você quer tipo o sistema do otPokemon né?
Porém o do otPokemon tem uma porta " com storage " que só se restar um sobrevivente o cara pode abrir.
Por Guizera123, 29 de dez. de 2015 em Scripts
info
Grupo: Campones
Registrado: 25/01/13
Posts: 55
Reputação: +2
Char no Tibia: Caiohonesto

Você quer tipo o sistema do otPokemon né?
Porém o do otPokemon tem uma porta " com storage " que só se restar um sobrevivente o cara pode abrir.
info
Grupo: Campones
Registrado: 12/09/15
Posts: 45
Reputação: 0

Sim, mais ou menos isso, porém, para o último que sobreviver.
Caso não seja possível poderia ser o de storage igual ao do otPokémon.
info
Grupo: Campones
Registrado: 25/01/13
Posts: 55
Reputação: +2
Char no Tibia: Caiohonesto

A única coisa que tenho aqui é um chest, que só pode abrir se so 1 sobreviver.
info
Grupo: Campones
Registrado: 12/09/15
Posts: 45
Reputação: 0

Seria útil, poderia disponibilizar ele?
info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: Masculino

Os players morrem? Ou quando a vida acaba eles são mandados peo templo?
info
Grupo: Conde
Registrado: 07/04/15
Posts: 926
Reputação: +335
Gênero: Masculino

@@Guizera123, vc ainda não tem nada, nada desse sistema? Tipo, vc pelo menos ja tem o script pra abrir o teleport, criar o monstro, etc?
info
Grupo: Campones
Registrado: 12/09/15
Posts: 45
Reputação: 0

Os players morrem? Ou quando a vida acaba eles são mandados peo templo?
Eles são mandados para o templo.
@@Guizera123, vc ainda não tem nada, nada desse sistema? Tipo, vc pelo menos ja tem o script pra abrir o teleport, criar o monstro, etc?
Sim tenho, é um NPC que em x dia, x horário abre as inscrições para o evento. Mas tenho o teleport automático também. No caso não seria de raid de monstros seria um matando o outro e o último que restar vence.
O que falta no sistema é apenas a script de apenas um vencer, o último que restar.
Editado Janeiro 23 por Guizera123
info
Grupo: Conde
Registrado: 07/04/15
Posts: 926
Reputação: +335
Gênero: Masculino

Manda o script do npc aí. (e caso o script do tp ñ seja o msm do npc, mande tb)
info
Grupo: Campones
Registrado: 12/09/15
Posts: 45
Reputação: 0

Manda o script do npc aí. (e caso o script do tp ñ seja o msm do npc, mande tb)
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local cfg = {
price = 1000, -- Taxa cobrada pelo NPC
startPos = {x = 683, y = 394, z = 7}, -- Posição central da sala de torneio
hour = "19:50:00", -- Horário que inícia as inscrições
maxhour = "20:00:00", -- Horário que termina as inscrições
}
if msgcontains(msg, 'tournament') or msgcontains(msg, 'torneio') then
selfSay('Você tem certeza que deseja increver-se no torneio por um valor de '..cfg.price..' gold coins?', cid)
talkState[talkUser] = 2
elseif talkState[talkUser] == 2 then
if msgcontains(msg, 'yes') or msgcontains(msg, 'sim') then
if os.date("%X") < cfg.hour or os.date("%X") > cfg.maxhour then
selfSay('As inscrições para o torneio não estão abertas no momento, volte novamente mais tarde.', cid)
return true
end
if doPlayerRemoveMoney(cid, cfg.price) then
doTeleportThing(cid, {x = 683, y = 394, z = 7})
doPlayerSendTextMessage(cid, 27, "Bem-vindo ao torneio, ele iniciará em instantes.")
else
selfSay('Você não possui dinheiro suficiente ('..cfg.price..').', cid)
end
else
selfSay('Você quer participar então? Ok. Vejo você na próxima vez.', cid)
talkState[talkUser] = 0
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: Masculino

Cadê o script do evento, quando o player eh mandado para o templo? Eh so você fazer um count. Toda vez que um player inscrever, count = count +1. Toda vez que um player for teleportado count = count-1. Quando count for zero, o player que sobrar eh vencedor. (Via storage)
info
Grupo: Campones
Registrado: 12/09/15
Posts: 45
Reputação: 0

Cadê o script do evento, quando o player eh mandado para o templo? Eh so você fazer um count. Toda vez que um player inscrever, count = count +1. Toda vez que um player for teleportado count = count-1. Quando count for zero, o player que sobrar eh vencedor. (Via storage)
Poderia me ajudar com isso?
Não sou bom com scripts.
info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: Masculino

Poderia me ajudar com isso?
Não sou bom com scripts.
Posta o script uai, vc so pos o do npc.
info
Grupo: Campones
Registrado: 12/09/15
Posts: 45
Reputação: 0

Posta o script uai, vc so pos o do npc.
Brother, o que tenho é basicamente o NPC e as actions.
Mas de qualquer forma vou postar.
creaturescript:
local cfg = {
leftPos = {x = 679, y = 382, z = 7},
rightPos = {x = 681, y = 379, z = 7},
}
function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
if isInRange(getCreaturePosition(pid), cfg.leftPos, cfg.rightPos) then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true)
doCreatureAddMana(cid, getCreatureMaxMana(cid))
doRemoveConditions(cid, false)
return false
end
return true
end
Actions: Baú e placa que entra no evento.
function onUse(cid, item, frompos, item2, topos)
local cfg = {
salaAward = {x = 683, y = 385 , z = 7}, -- Cordenadas da sala de premiação
}
local area = {fromx =682, fromy = 386, fromz = 7, tox = 684, toy = 384, toz = 7} -- Positions
local check = getPlayersInArea(area)
local maxhour = "15:19:00"
if #check > 1 then
doPlayerSendTextMessage(cid, 27, "O torneio ainda não acabou, você só pode usar a alavanca quando o torneio terminar.")
return true
end
if os.date("%X") < maxhour then
doPlayerSendTextMessage(cid, 27, "Aguarde até que todos os participantes entrem no torneio.")
return true
end
doTeleportThing(cid, cfg.salaAward)
doPlayerSendTextMessage(cid, 20, "Parabéns, você sobreviveu a todas as raids, o seu prêmio está no baú!")
doBroadcastMessage("O jogador "..getCreatureName(cid).." sobreviveu ao torneio, parabéns!", MESSAGE_STATUS_CONSOLE_RED)
end
function onUse(cid, item, frompos, item2, topos)
local cfg = {
awardId = 2148, -- Item que o jogador ganha
awardAmount = 100, -- Quantidade
}
doPlayerAddItem(cid, cfg.awardId, cfg.awardAmount)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
doPlayerSendTextMessage(cid, 27, "Parabéns, você sobreviveu e recebeu o prêmio.")
return true
end
Para facilitar eu vou tentar explicar como funcionar...
Mapa:

Você fala com o NPC (script acima) e se estiver ocorrendo o torneio no momento ele teletransporta você em troca de uma taxa em dinheiro.
Depois que você já foi teleportado você cairá na sala de baixo onde tem a alavanca, até acabar as inscrições, após isso você pode clicar na alavanca e ser teleportado para o centro da arena (script acima).
Porém depois disso não consegui continuar e falta a script de o último jogador que permanecer vivo ser o vencedor e ganhar acesso a sala de premiação.
info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: Masculino

local cfg = {
leftPos = {x = 679, y = 382, z = 7},
rightPos = {x = 681, y = 379, z = 7},
}
function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
if isInRange(getCreaturePosition(pid), cfg.leftPos, cfg.rightPos) then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true)
doCreatureAddMana(cid, getCreatureMaxMana(cid))
doRemoveConditions(cid, false)
local check = getPlayersInArea(area)
if #check == 1 then
doTeleportThing(check[1], POSIÇÃO_SALA_RECOMPENSA)
end
return false
end
return true
end
Quando um player no evento morrer ele checará quantos restam. Quando restar só um ele teleporta esse um para a sala de recompensas.
Editado Janeiro 23 por Skulls
info
Grupo: Campones
Registrado: 12/09/15
Posts: 45
Reputação: 0
Olá, gostaria de pedir a ajuda para um evento que estou criando.
É um torneio, porém, não tenho a script de existir apenas um ganhador, seria o seguinte...
Todos entram e o último que sobrar ganha acesso a sala de premiação.
Caso eu consiga preparar o evento e deixar 100%, compartilharei ele no fórum.